<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>线程机制与事件机制</title>
</head>
<body>
<!-- 
    js线程
        js是单线程执行的（回调函数也是在主线程）
        H5 提出了实现多线程的方案 ：Web Workers --》 Worker
        只能是主线程更新界面
 -->
<!-- 
    定时器问题：
        - 定时器并不真正完全定时
        - 如果在主线程执行了一个长时间的操作，可能导致延时才处理
 -->
<!-- 
    浏览器内核模块组成
        主线程：
            - js引擎模块：💥负责js程序的编译与运行
            - html，css文档解析，模块：💥负责页面文本的解析
            - DOM/CSS模块：💥负责 dom/css 在内存中的相关处理
            - 布局和渲染模块：💥负责页面的布局和效果的绘制（内存中的对象）
        分线程
            - 定时器模块：负责定时器的管理
            - 事件响应模块：负责事件的管理
            - 网络请求模块：负责Ajax请求
 -->
<!-- 
    事件处理机制
        代码分类
            - 初始化执行代码：包含绑定dom 事件监听，设置定时器，发送Ajax请求的代码
            - 回调执行代码：处理回调逻辑
        js引擎执行代码的基本流程
            - 初始化代码 --》 回调代码
        模型的 2 个重要组成部分：
            - 事件管理模块
            - 回调列队
        模块的转运流程
            - 执行初始化代码，将事件回调函数交给对应的模块管理
            - 当事件发生时，管理模块会将回调函数及其数据添加到回调队列中
            - 只有当初始化代码执行完后（可能要一定时间），才会遍历读取回调列队中的回调函数执行
 -->
<script>
    
</script>
</body>
</html>